#ifndef __cmodel__
#define __cmodel__

#include <vector>
//#include "celement.h"

class CEvent;
class CElement;

class CModel {
	std::vector<CElement*> ElementList;
	std::vector<CEvent*> EventList;
	double currentTime;
public:
	
	CModel();
	~CModel();
	
	CElement* getElementByID(long id);
	double getCurrentTime();
	
	void CollectEvent(CEvent* evt);
	void AddElement(CElement* elm);
	
	void Run();
	void Forward();
	void GenerateStartEvent();
	void dispatchEvent(CEvent* evt);

};
#endif // __cmodel__
